Endpoints refer to physical communication addresses between software systems, with a communication being carried out according to the communication or transport protocol supported. There are a variety of different communication protocols. Common examples include FTP, HTTP, MLLP, JMS and Web Service. When two software systems communicate, they can use a single endpoint that resides on one of the systems, or they can use two endpoints, with one endpoint on each system. For example, in a first model, when using a single endpoint, the same physical endpoint needs to allow both systems to initiate requests or transmit responses to another system, beyond the normal handshake communication as described by the transport protocol. Such transport protocols are described as bi-directional protocols. An example of a bi-directional protocol is MLLP.
In a second model, when using two separate endpoints (one on each system), the transport protocols supported on the endpoints can be uni-directional protocols, where only the initiating system can transmit requests to the receiving system, and the receiving system sends a response using the other endpoint. An example of a uni-directional protocol is FTP. Some protocols can support both bi-directional and uni-directional exchanges, such as Web Services.
Managing and monitoring endpoint status and activities are crucial to understanding the health of software systems. Typically, industry software manages and monitors information using endpoints only, and does not specifically organize by pairs of related endpoints for communicating a specific set of documents and functional acknowledgements. While such monitoring is effective for bi-directional endpoints, it is inadequate when the systems communicate using pairs of uni-directional endpoints. These are the areas that embodiments of the invention are intended to address.